home *** CD-ROM | disk | FTP | other *** search
/ CICA 1995 August / CICA - The Ultimate Collection of Shareware for Windows (Disc 2) (August 1995).iso / disc2 / nt / source.exe / POSIX / ELVIS / MAKEFILE.MIX < prev    next >
Text File  |  1992-09-26  |  13KB  |  473 lines

  1. # combined Makefile for ELVIS - a clone of `vi`
  2. #
  3. # After editing this Makefile as described below, you should...
  4. #
  5. # Use `make` to compile all programs
  6. # Use `make install` to copy the programs to the BIN directory
  7. # Use `make clean` to remove all object files
  8. # Use `make clobber` to remove everything except source & documentation
  9. # Use `make tags` to build new "tags" and "refs" files
  10. # Use `make uue` to produce uuencoded compressed tar archives of the source
  11. # Use `make sh` to produce shar archives of the source
  12. # Use `make print` to print the Elvis documentation
  13. #
  14. # Several groups of Makefile settings are included below.  Choose *ONE* group
  15. # of settings for your particular system, and leave the others commented out.
  16. # The meanings of these settings are:
  17. #    O    the filename extension for unlinked object files -- usually .o
  18. #    E    the filename extension for executable files -- usually null
  19. #    EXTRA    version-specific object files used in elvis
  20. #    EXTRA2    version-specific object files used in elvis, virec, & refont
  21. #    LIBS    any special libraries, such as "-ltermcap"
  22. #    BIN    directory where executables should be installed
  23. #    CC    the C compiler command, possibly with "memory model" flags
  24. #    CFLAGS    compiler flags used to select compile-time options
  25. #    OF    link flag to control the output file's name -- usually -o<space>
  26. #    RF    flag used to denote "compile but don't link" -- usually -c
  27. #    DATE    a "cc" flag that defines "DATE".  e.g. DATE=-DDATE=\"7/4/76\"
  28. #    EVAL    the word "eval", if DATE requires it
  29. #    PROGS    the list of all programs
  30. #    CHMEM    any extra commands to be run after ELVIS is linked
  31. #    SORT    if the "tags" file must be sorted, then SORT=-DSORT
  32. #    INST    installation method: inst.dos, inst.tos, inst.os9, or inst.unix
  33. #    RM    the name of a program that deletes files
  34. #    PR1    used to print documentation -- typically "refont -c"
  35. #    PR2    used to send text to printer -- typically "| lpr"
  36. #    DUMMY    usually nothing, but OS9 needs "dummy"
  37. #    DOC    name of "doc" directory, with a trailing slash
  38.  
  39. #---- These settings are recommended for System-V UNIX and SCO XENIX-386 ----
  40. #O=    .o
  41. #E=
  42. #EXTRA=
  43. #EXTRA2=
  44. #LIBS=    -ltermcap
  45. #BIN=    /usr/local/bin
  46. #CFLAGS=    -DM_SYSV -O
  47. #OF=    -o 
  48. #RF=    -c
  49. #DATE=    -DDATE=\'\"`date`\"\'
  50. #EVAL=    eval 
  51. #PROGS=    elvis$E ctags$E ref$E virec$E refont$E
  52. #CHMEM=    
  53. #SORT=    -DSORT
  54. #INST=    inst.unix
  55. #RM=    rm -f
  56. #PR1=    refont -c
  57. #PR2=    | lp
  58. #DUMMY=
  59. #DOC=    doc/
  60.  
  61. #---- These settings are recommended for SCO XENIX-286 ----
  62. #O=    .o
  63. #E=
  64. #EXTRA=
  65. #EXTRA2=
  66. #LIBS=    -ltermcap
  67. #BIN=    /usr/local/bin
  68. #CC=    cc -M2s -i
  69. #CFLAGS=    -DM_SYSV -Ox -DCS_IBMPC
  70. #OF=    -o 
  71. #RF=    -c
  72. #DATE=    -DDATE=\'\"`date`\"\'
  73. #EVAL=    eval 
  74. #PROGS=    elvis$E ctags$E ref$E virec$E refont$E
  75. #CHMEM=    
  76. #SORT=    -DSORT
  77. #INST=    inst.unix
  78. #RM=    rm -f
  79. #PR1=    refont -c
  80. #PR2=    | lp
  81. #DUMMY=
  82. #DOC=    doc/
  83.  
  84. #---- These settings are recommended for BSD 4.3 UNIX ----
  85. #O=    .o
  86. #E=
  87. #EXTRA=
  88. #EXTRA2=
  89. #LIBS=    -ltermcap
  90. #BIN=    /usr/local/bin
  91. #CFLAGS=    -Dbsd -O
  92. #OF=    -o 
  93. #RF=    -c
  94. #DATE=    -DDATE=\'\"`date`\"\'
  95. #EVAL=    eval 
  96. #PROGS=    elvis$E ctags$E ref$E virec$E refont$E
  97. #CHMEM=    
  98. #SORT=    -DSORT
  99. #INST=    inst.unix
  100. #RM=    rm -f
  101. #PR1=    refont -c
  102. #PR2=    | lpr
  103. #DUMMY=
  104. #DOC=    doc/
  105.  
  106. #---- These settings are recommended for Coherent ----
  107. #O=.o
  108. #E=
  109. #EXTRA=
  110. #EXTRA2=
  111. #LIBS=    -lterm
  112. #BIN=    /usr/bin
  113. #CC=    cc 
  114. #CFLAGS=    -O -DCOHERENT -DCRUNCH -DNO_CHARATTR -DNO_CURSORSHAPE \
  115. #    -DNO_DIGRAPH -DNO_MKEXRC -VSUVAR
  116. #OF=    -o 
  117. #RF=    -c
  118. #DATE=    -DDATE=\'\"`date`\"\'
  119. #EVAL=    eval
  120. #PROGS=    elvis$E ctags$E ref$E virec$E refont$E
  121. #CHMEM=    fixstack 2000 elvis$E
  122. #SORT=
  123. #INST=    inst.unix
  124. #RM=    rm -f
  125. #PR1=    refont -b
  126. #PR2=    | lpr
  127. #DUMMY=
  128. #DOC=    doc/
  129.  
  130. #---- These settings are recommended for Minix-ST ----
  131. #O=    .o
  132. #E=
  133. #EXTRA=
  134. #EXTRA2=
  135. #LIBS=
  136. #BIN=    /usr/bin
  137. #CC=    cc
  138. #CFLAGS=
  139. #OF=    -o 
  140. #RF=    -c
  141. #DATE=    -DDATE=\'\"`date`\"\'
  142. #EVAL=    eval 
  143. #PROGS=    elvis$E ctags$E ref$E virec$E refont$E
  144. #CHMEM=    chmem =18000 elvis
  145. #SORT=
  146. #INST=    inst.unix
  147. #RM=    rm -f
  148. #PR1=    lpr
  149. #PR2=
  150. #DUMMY=
  151. #DOC=    doc/
  152.  
  153. #---- These settings are recommended for Minix-PC ----
  154. #O=    .s
  155. #E=
  156. #EXTRA=    tinytcap$O
  157. #EXTRA2=
  158. #LIBS=
  159. #BIN=    /usr/bin
  160. #CC=    cc -i
  161. #CFLAGS=    -O -DCRUNCH -DNO_MKEXRC -DNO_CURSORSHAPE -DNO_CHARATTR \
  162. #    -DNO_SHOWMODE -DNO_MODELINE -DNO_OPTCOLS -DNO_DIGRAPH -DNO_ABBR \
  163. #    -DNO_AT -DNO_SENTENCE -DNO_ERRLIST
  164. #### (all but -DNO_EXTENSIONS, -DNO_RECYCLE, -DNO_MAGIC, and -DNO_CHARSEARCH)
  165. #OF=    -o 
  166. #RF=    -c
  167. #DATE=    -DDATE=\'\"`date`\"\'
  168. #EVAL=    eval 
  169. #PROGS=    elvis$E ctags$E ref$E virec$E refont$E
  170. #CHMEM=
  171. #SORT=
  172. #INST=    inst.unix
  173. #RM=    rm -f
  174. #PR1=    lpr
  175. #PR2=    
  176. #DUMMY=
  177. #DOC=    doc/
  178.  
  179. #---- These settings are recommended for MS-DOS + MS-C + NDMAKE ----
  180. #O=    .obj
  181. #E=    .exe
  182. #EXTRA=    pc$O sysdos$O tinytcap$O
  183. #EXTRA2=
  184. #LIBS=
  185. #BIN=    c:\dos
  186. #CC=    cl /AM
  187. #CFLAGS=    -O -DCS_IBMPC -DCS_SPECIAL
  188. #OF=    -o 
  189. #RF=    -c
  190. #DATE=
  191. #EVAL=
  192. #PROGS=    elvis$E ex$E ctags$E ref$E virec$E wildcard$E refont$E
  193. #CHMEM=    
  194. #SORT=
  195. #INST=    inst.dos
  196. #RM=    del
  197. #PR1=    refont -c
  198. #PR2=    >PRN
  199. #DUMMY=
  200. #DOC=    doc\
  201.  
  202. #---- These settings are recommended for Atari TOS + Mark Williams C ----
  203. #O=.o
  204. #E=.ttp
  205. #EXTRA=    sysdos$O tinytcap$O
  206. #EXTRA2=    atari$O
  207. #LIBS=
  208. #BIN=    c:\
  209. #CC=    cc -VPEEP
  210. #CFLAGS=    -O -DCS_IBMPC -DCS_SPECIAL
  211. #OF=    -o 
  212. #RF=    -c
  213. #DATE=
  214. #EVAL=
  215. #PROGS=    elvis$E ctags$E ref$E virec$E wildcard$E shell$E refont$E
  216. #CHMEM=
  217. #SORT=
  218. #INST=    inst.tos
  219. #RM=    rm -f
  220. #PR1=    refont -e
  221. #PR2=    >PRT:
  222. #DUMMY=
  223. #DOC=    'doc\'
  224.  
  225. #---- These settings are recommended for OS-9/68K V2.3 ----
  226. #O=    .r
  227. #E=
  228. #EXTRA=    date$O
  229. #EXTRA2=    osk$O 
  230. #LIBS=    -l=/dd/lib/termlib.l
  231. #BIN=    /dd/usr/cmds
  232. #CC=    cc
  233. #ODIR=    /dd/usr/src/elvis
  234. #CFLAGS=    -gq -m=2
  235. #OF=    -f=$(ODIR)/
  236. #RF=    -r
  237. #DATE=
  238. #EVAL=
  239. #PROGS=    elvis$E vi$E view$E input$E ctags$E ref$E virec$E refont$E
  240. #CHMEM=    touch date.r
  241. #SORT=
  242. #INST=    inst.os9
  243. #RM=    del *.stb *.dbg
  244. #PR1=    refont -b
  245. #PR2=    >/p
  246. #DUMMY=    dummy
  247. #DOC=    doc/
  248.  
  249. ###########################################################################
  250. ###########################################################################
  251. ###                                                                     ###
  252. ###     The rest of this Makefile contains no user-servicable parts     ###
  253. ###                                                                     ###
  254. ###########################################################################
  255. ###########################################################################
  256.  
  257. OBJS=    blk$O cmd1$O cmd2$O curses$O cut$O ex$O input$O main$O misc$O \
  258.     modify$O move1$O move2$O move3$O move4$O move5$O opts$O recycle$O \
  259.     redraw$O regexp$O regsub$O system$O tio$O tmp$O vars$O vcmd$O vi$O
  260.  
  261. ALIAS=    alias$O
  262.  
  263. DOCS=    $(DOC)index.doc $(DOC)intro.doc $(DOC)visual.doc $(DOC)ex.doc \
  264.     $(DOC)regexp.doc $(DOC)options.doc $(DOC)cutbufs.doc $(DOC)differ.doc \
  265.     $(DOC)internal.doc $(DOC)cflags.doc $(DOC)termcap.doc \
  266.     $(DOC)environ.doc $(DOC)versions.doc
  267.  
  268. SRC1=    README KNOWN.BUGS $(DOC)intro.doc $(DOC)visual.doc $(DOC)ex.doc \
  269.     $(DOC)versions.doc $(DOC)cflags.doc $(DOC)differ.doc
  270. SRC2=    $(DOC)cutbufs.doc $(DOC)options.doc $(DOC)environ.doc $(DOC)regexp.doc \
  271.     $(DOC)internal.doc $(DOC)termcap.doc $(DOC)index.doc $(DOC)ctags.man \
  272.     $(DOC)elvis.man $(DOC)ref.man $(DOC)refont.man $(DOC)virec.man
  273. SRC3=    Elvis.lnk Elvis.mak Elvis.prj Makefile.mix alias.c atari.c \
  274.     ctags.c pc.c ref.c shell.c sysdos.c virec.c wildcard.c \
  275.     profile.sh osk.c osk.h date.c
  276. SRC4=    blk.c cmd1.c cmd2.c config.h curses.c
  277. SRC5=    curses.h cut.c ex.c input.c main.c misc.c
  278. SRC6=    modify.c move1.c move2.c move3.c move4.c move5.c opts.c recycle.c \
  279.     redraw.c 
  280. SRC7=    regexp.c regexp.h regsub.c system.c tinytcap.c tio.c tmp.c 
  281. SRC8=    vars.c vcmd.c vi.c vi.h refont.c
  282.  
  283. ###########################################################################
  284.  
  285. all: $(PROGS)
  286.     @echo done.
  287.  
  288. elvis$E: $(OBJS) $(EXTRA) $(EXTRA2)
  289.     $(CC) $(CFLAGS) $(OF)elvis$E $(OBJS) $(EXTRA) $(EXTRA2) $(LIBS)
  290.     $(CHMEM)
  291.  
  292. ctags$E: ctags.c
  293.     $(CC) $(CFLAGS) $(SORT) $(OF)ctags$E ctags.c
  294.  
  295. ref$E: ref.c
  296.     $(CC) $(CFLAGS) $(OF)ref$E ref.c
  297.  
  298. virec$E: virec.c
  299.     $(CC) $(CFLAGS) $(OF)virec$E virec.c $(EXTRA2)
  300.  
  301. view$E: $(ALIAS)
  302.     $(CC) $(CFLAGS) $(OF)view$E $(ALIAS)
  303.  
  304. ex$E: $(ALIAS)
  305.     $(CC) $(CFLAGS) $(OF)ex$E $(ALIAS)
  306.  
  307. vi$E: $(ALIAS)
  308.     $(CC) $(CFLAGS) $(OF)vi$E $(ALIAS)
  309.  
  310. input$E: $(ALIAS)
  311.     $(CC) $(CFLAGS) $(OF)input$E $(ALIAS)
  312.  
  313. shell$E: shell.c
  314.     $(CC) $(CFLAGS) $(OF)shell$E shell.c
  315.  
  316. wildcard$E: wildcard.c
  317.     $(CC) $(CFLAGS) $(OF)wildcard$E wildcard.c
  318.  
  319. refont$E: refont.c
  320.     $(CC) $(CFLAGS) $(OF)refont$E refont.c $(EXTRA2)
  321.  
  322. ##############################################################################
  323.  
  324. # The file cmd1.c is compiled with the extra flag -DDATE="today's date".
  325. cmd1$O: cmd1.c vi.h config.h
  326.     $(EVAL) $(CC) $(CFLAGS) $(RF) $(DATE) cmd1.c
  327.  
  328. # "It all depends..."
  329. $(OBJS): vi.h curses.h config.h
  330.  
  331. # OS9 must create a custom date.c file, and compile it.
  332. date$O: $(OBJS)
  333.     @echo '/* compilation date of elvis */' >-date.c
  334.     @echo -r 'char date[] = "' >+date.c
  335.     @echo -r 'echo -r ' >-/dd/tmp/date.c
  336.     @date >+/dd/tmp/date.c
  337.     @shell /dd/tmp/date.c >+date.c
  338.     @echo '";' >+date.c
  339.     @del /dd/tmp/date.c
  340.     $(CC) $(CFLAGS) $(RF) date.c
  341.  
  342. ##############################################################################
  343. install: $(INST)
  344.     @echo Installation complete.
  345.  
  346. inst.unix: $(DUMMY)
  347.     cp $(PROGS) $(BIN)
  348.     (cd $(BIN); chmod 755 $(PROGS))
  349.     (cd $(BIN); chown bin $(PROGS))
  350.     -ln $(BIN)/elvis $(BIN)/vi
  351.     -ln $(BIN)/elvis $(BIN)/ex
  352.     -ln $(BIN)/elvis $(BIN)/view
  353.     -ln $(BIN)/elvis $(BIN)/input
  354.  
  355. inst.dos: $(DUMMY)
  356.     copy $(PROGS) $(BIN)
  357.     copy $(BIN)/ex$E $(BIN)/vi$E
  358.     copy $(BIN)/ex$E $(BIN)/view$E
  359.     copy $(BIN)/ex$E $(BIN)/input$E
  360.  
  361. inst.tos: $(DUMMY)
  362.     copy $(PROGS) $(BIN)
  363.  
  364. inst.os9: $(DUMMY)
  365.     copy $(PROGS) -rw=$(BIN)
  366.     chd $(BIN); attr -epenprnpw $(PROGS)
  367.  
  368. ##############################################################################
  369. clean: $(DUMMY)
  370.     $(RM) *$O $(DOC)*.1 elvis?.uue elvis?.sh core
  371.  
  372. clobber: clean
  373.     $(RM) tags refs $(PROGS)
  374.  
  375. ##############################################################################
  376. print: refont$E
  377.     $(PR1) $(DOCS) $(PR2)
  378.  
  379. tags refs: ctags$E
  380.     ctags -r *.c *.h
  381.  
  382. ##############################################################################
  383. uue: elvis1.uue elvis2.uue elvis3.uue elvis4.uue elvis5.uue \
  384.     elvis6.uue elvis7.uue elvis8.uue
  385.  
  386. elvis1.uue: $(SRC1)
  387.     tar cf elvis1.tar $(SRC1)
  388.     compress -b13 elvis1.tar
  389.     cp README elvis1.uue
  390.     uue elvis1.tar.Z - >>elvis1.uue
  391.     $(RM) elvis1.tar*
  392.  
  393. elvis2.uue: $(SRC2)
  394.     tar cf elvis2.tar $(SRC2)
  395.     compress -b13 elvis2.tar
  396.     uue elvis2.tar.Z
  397.     $(RM) elvis2.tar*
  398.  
  399. elvis3.uue: $(SRC3)
  400.     tar cf elvis3.tar $(SRC3)
  401.     compress -b13 elvis3.tar
  402.     uuencode elvis3.tar.Z <elvis3.tar.Z >elvis3.uue
  403.     $(RM) elvis3.tar*
  404.  
  405. elvis4.uue: $(SRC4)
  406.     tar cf elvis4.tar $(SRC4)
  407.     compress -b13 elvis4.tar
  408.     uuencode elvis4.tar.Z <elvis4.tar.Z >elvis4.uue
  409.     $(RM) elvis4.tar*
  410.  
  411. elvis5.uue: $(SRC5)
  412.     tar cf elvis5.tar $(SRC5)
  413.     compress -b13 elvis5.tar
  414.     uuencode elvis5.tar.Z <elvis5.tar.Z >elvis5.uue
  415.     $(RM) elvis5.tar*
  416.  
  417. elvis6.uue: $(SRC6)
  418.     tar cf elvis6.tar $(SRC6)
  419.     compress -b13 elvis6.tar
  420.     uuencode elvis6.tar.Z <elvis6.tar.Z >elvis6.uue
  421.     $(RM) elvis6.tar*
  422.  
  423. elvis7.uue: $(SRC7)
  424.     tar cf elvis7.tar $(SRC7)
  425.     compress -b13 elvis7.tar
  426.     uuencode elvis7.tar.Z <elvis7.tar.Z >elvis7.uue
  427.     $(RM) elvis7.tar*
  428.  
  429. elvis8.uue: $(SRC8)
  430.     tar cf elvis8.tar $(SRC8)
  431.     compress -b13 elvis8.tar
  432.     uuencode elvis8.tar.Z <elvis8.tar.Z >elvis8.uue
  433.     $(RM) elvis8.tar*
  434.  
  435. ##############################################################################
  436. sh: elvis1.sh elvis2.sh elvis3.sh elvis4.sh elvis5.sh elvis6.sh \
  437.     elvis7.sh elvis8.sh
  438.  
  439. elvis1.sh: $(SRC1)
  440.     cat   >elvis1.sh README
  441.     echo >>elvis1.sh ': ------------------------ CUT HERE --------------------'
  442.     echo >>elvis1.sh 'test -d doc || mkdir doc || exit 2'
  443.     shar >>elvis1.sh -h $(SRC1)
  444.  
  445. elvis2.sh: $(SRC2)
  446.     echo  >elvis2.sh ': ------------------------ CUT HERE --------------------'
  447.     echo >>elvis2.sh 'test -d doc || mkdir doc || exit 2'
  448.     shar >>elvis2.sh -h $(SRC2)
  449.  
  450. elvis3.sh: $(SRC3)
  451.     shar $(SRC3) >elvis3.sh
  452.  
  453. elvis4.sh: $(SRC4)
  454.     shar $(SRC4) >elvis4.sh
  455.  
  456. elvis5.sh: $(SRC5)
  457.     shar $(SRC5) >elvis5.sh
  458.  
  459. elvis6.sh: $(SRC6)
  460.     shar $(SRC6) >elvis6.sh
  461.  
  462. elvis7.sh: $(SRC7)
  463.     shar $(SRC7) >elvis7.sh
  464.  
  465. elvis8.sh: $(SRC8)
  466.     shar $(SRC8) >elvis8.sh
  467.  
  468. ##############################################################################
  469.  
  470. # Under XENIX only!  This stores all sources on a 3.5" 720k floppy disk.
  471. floppy: $(SRC1) $(SRC2) $(SRC3) $(SRC4) $(SRC5) $(SRC6) $(SRC7) $(SRC8)
  472.     tar c5v $(SRC1) $(SRC2) $(SRC3) $(SRC4) $(SRC5) $(SRC6) $(SRC7) $(SRC8)
  473.